package com.jic.product.manage.response;

import com.jic.product.manage.response.base.BaseResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品表
 *
 * @author :
 * @version : v1.0.0
 * @email :
 * @since : 2020-01-10 07:03:01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductResponse extends BaseResponse {

    //商家商品id
    private long id;
    //商品编码
    private String code;
    //体积(cm^3)
    private BigDecimal productVolume;
    //保质期天数
    private Integer shelflifeDays;
    //包退天数
    private Integer returnDays;
    //第三方商品编码
    private String thirdProductCode;
    //英文名称
    private String englishName;
    //0-普通商品;2-系列子品;3-系列主品;4-组合商品
    private Integer typeOfProduct;
    //系列虚品的Id
    private long parentId;
    //商品毛重(g)
    private BigDecimal grossWeight;
    // 副标题(商家自定义名称)
    private String subtitle;
    //货号
    private String artNo;
    //包换天数
    private Integer replacementDays;
    //商品最大净重(g)
    private BigDecimal netWeight;
    //商品最小净重(g)
    private BigDecimal netWeightStart;
    //备注
    private String remark;
    //长度(cm)
    private BigDecimal productLength;
    //运费模板id
    private long freightTemplateId;
    //高度(cm)
    private BigDecimal productHeight;
    //商品类型:1-常规商品;2卡券、3海购、4赠品、10实体卡、11虚拟卡、20券、 5生鲜产品、6增值服务、7其他、21积分商品;31-称重商品;)
    private Integer type;
    //商品中文名称
    private String chineseName;
    //商品来源类型:1-平台;2-商家;
    private Integer sourceType;
    //保修天数
    private Integer guaranteeDays;
    //审核状态:0-待提交;1-审核中;2-审核通过;3-审核不通过;4-永久下架;
    private Integer status;
    //宽度(cm)
    private BigDecimal productWidth;
    //渠道Code
    private String channelCode;
    //销售计量单位主键id
    private long saleCalcUnitId;
    //版本号:默认0, 每次更新+1
    private Integer versionNo;
    //审核原因
    private String auditMessage;
    //类目表外键
    private long categoryId;
    //类目接收数组
    private String categoryIdArr;
    //品牌Id
    private Integer brandId;
    //上下架状态 0-下架，1-上架
    private Integer canSale;
    //商品数据类型:1-运营商品;2-商家商品;3-店铺商品;
    private Integer dataType;
    //商品子形式，1-自建子品，2-聚合子品
    private Integer subTypeOfProduct;
    //仓库类型:0-有实体仓;1-无实体仓;
    private Integer warehouseType;
    //副标题(二语言)
    private String subtitleLan2;
    //价格策略:2-店铺;3-商家;4-运营;
    private Integer priceLevel;
    //组合商品类型:0-固定组合;1-可选组合;
    private Integer combineType;
    //首次上架时间
    private Date firstShelfTime;
    //商品资料引用ID, 如果是门店商品 ref_id =商家商品ID（）
    private long refId;
    //主图
    private String pictureUrl;
    //总库存
    private Integer totalStock;
    //零售价
    private BigDecimal salePriceWithTax;
    //商品品牌
    private String name;
    //商品类目
    private String fullNamePath;
    //是否支持发票
    private Integer invoice;
    //启用批次
    private Integer batch;
    //允许采购
    private Integer allowPurchase;
    //启用序列
    private Integer sequence;
    //产地
    private String placeOriginName;
    //商品条形码
    private String barCode;
    //商品保障
    private long[] guaranteeId;
    //计量单位
    private String unitsName;
    //店铺名称
    private String storeName;
    //商家名称
    private String merchantName;
    //分发记录
    private Integer isDistribute;
    //是否是BOM商品(0-否;1-是)
    private Integer bomFlag;
    //是否是pill商品(0-否;1-是)
    private Integer pillFlag;
    //生命周期  1 初始期-2培养期-3上升期-4衰退期-5清退期-6屏蔽期(0-否;1-是)
    private Integer lifeCycle;
    // 商品入仓 0.否; 1.是;
    private Integer warehousingFlag;
    // 库存显示 1.基本款库存; 2.校标款库存;
    private Integer inventoryDisplay;
    //商家编码
    private  String merchantCode;

    @ApiModelProperty(value = "是否强制发票0不强制1强制")
    private Integer forceInvoice;
    //供应商编码
    private String supplierCode;
    private Long supplierId;

    @ApiModelProperty(value = "否是允许分享0允许1不允许")
    private Integer share;

    @ApiModelProperty(value = "隐藏供应商名称0隐藏1不隐藏")
    private Integer hideSupplier;

    @ApiModelProperty(value = "返回首页浮标0不隐藏1隐藏")
    private Integer hideBuoy;

    @ApiModelProperty(value = "是否支持退换货0不支持1不支持")
    private Integer retreatChange;

    @ApiModelProperty(value = "是否行内自提0不支持1支持")
    private Integer selfRaising;

    @ApiModelProperty(value = "支持支付方式")
    private String payMethod;

    @ApiModelProperty(value = "购买方式")
    private String purchaseMethod;

    @ApiModelProperty(value = "特权表示0无1会员特权商品")
    private Integer privilege;

}
